/**
 * 合并最后两级路径
 * @param routerPath
 * @returns routerPath
 */
const mergeRouterPath = (routerPath: string): string => {
  if (!routerPath.length) return routerPath

  // 路径处理结果
  let fixRouterPath = ''
  // 用于处理的路径元素
  const pathArr = routerPath.split('/')

  fixRouterPath = pathArr
  // 清除路径数组的空字符串
    .filter((path: string): boolean => {
      return !!path.length
    })
  // NOTE: 和文件夹同名的也视为索引，同插件的index索引（https://github.com/hannoeru/vite-plugin-pages#index-routes）
  // 如果最后两级路径相同，则合并最后两级路径
    .reduce(
      (
        path: string,
        currentPath: string,
        index: number,
        pathArr: Array<string>
      ): string => {
        // 相对于当前元素的上一个元素
        const previousPath: string | undefined = pathArr[index - 1]
        if (currentPath === previousPath) {
          return path
        } else {
          return path.concat(`/${currentPath}`)
        }
      },
      ''
    )

  return fixRouterPath
}

export { mergeRouterPath }
